package org.zs.spring02;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserService {
    /*
    @Autowired 作用：给引用类型属性设置对象
    @Autowired 原理：根据变量类型，去ioc容器查询组件，如果类型唯一，直接装配， | 如果类型不唯一，使用变量名做id值常识去匹配 | 如果没有，直接抛出异常
    @Autowired 错误 ：1 没有userDao  NoSuchBeanDefinitionException  2 有多个类型，且名称还不对应，NoUniqueBeanDefinitionException
    扩展1 佛系装配 默认：boolean required() default true; NoSuchBeanDefinitionException
    扩展2： 类型有多个组件选择问题 1 变量名【改】 = 【组件名】 【改】  2 @Qualifier(value = "userDaoImp") [多个且不匹配， 必须@Autowired]
    扩张3：@Resource（java java提供） = @Autowired + @Qualifier （spring）
     */
//    @Qualifier(value = "userDaoImp")
//    @Autowired
    @Resource(name = "userDaoNewImpl")
    private UserDao userDao;

    public void add()
    {
        System.out.println("service add...");
        userDao.add();
    }
}
